/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package gespap2009;

/**
 *
 * @author guliana
 */
import java.util.ArrayList;
import java.util.List;
import java.util.Random;

// <editor-fold defaultstate="collapsed" desc=" UML Marker ">
// #[regen=yes,id=DCE.51C858C0-F063-51E9-EAE7-3C06025D7465]
// </editor-fold>
public abstract class Articulo {
    private List<EjemplarArticulo> Ejemplares;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker ">
    // #[regen=yes,id=DCE.497D7E44-14B4-9C8B-50DA-96286BD00A71]
    // </editor-fold>
    private double precio;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker ">
    // #[regen=yes,id=DCE.2FC96F57-731F-A9B6-6EE7-2365FFC11F50]
    // </editor-fold>
    public Articulo (double precioArt) {
        Ejemplares = new ArrayList<EjemplarArticulo>();
        setPrecio(precioArt);
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker ">
    // #[regen=yes,regenBody=yes,id=DCE.FC048AC5-AB4E-C077-B91D-9CA757EACACA]
    // </editor-fold>
    public double getPrecio () {
        return precio;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker ">
    // #[regen=yes,regenBody=yes,id=DCE.A866F4E6-671C-EEC9-8E58-8994A1117D4A]
    // </editor-fold>
    public void setPrecio (double val) {
        this.precio = val;
    }
    public List<EjemplarArticulo> getListaEjemplares(){

        return this.Ejemplares;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker ">
    // #[regen=yes,id=DCE.30C40649-FEA7-C8A4-3996-0B590AF55561]
    // </editor-fold>
    /**
     * Busca un ejemplar con estado EnStock y lo elimina
     */
   /* public void quitarDeStock () {
        boolean Encontrado=false;
        EnStock es = new EnStock();
        EjemplarArticulo ej;
        Iterator iterador = Ejemplares.iterator();
        while (iterador.hasNext() && Encontrado) {
            ej = (EjemplarArticulo) iterador.next();
            // compruebo si es de la clase EnStock
            if (es.getClass()==(ej.getEstado().getClass())) {
                Encontrado = true;
                es=null;    // elimino el objeto EnStock
                Ejemplares.remove(ej);  // elimino el objeto EjemplarArticulo
            }
        }
    }*/

    /**
     * Añade un ejemplar al articulo
     */
    public void añadirEjemplar(EjemplarArticulo ej){
        Ejemplares.add(ej);
    }

    public abstract void imprimir();

    public int generarIDEjemplar(){
        Random number = new Random();
        number.setSeed(1);
        return number.nextInt();

    }
}
